package cn.silver.module.message.service.impl;

import cn.silver.framework.mybatis.service.impl.BaseServiceImpl;
import cn.silver.module.message.bean.TemplateBean;
import cn.silver.module.message.domain.MsgTemplateParam;
import cn.silver.module.message.mapper.MsgTemplateParamMapper;
import cn.silver.module.message.param.TemplateParam;
import cn.silver.module.message.service.IMsgTemplateParamService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 消息模板参数Service业务层处理
 *
 * @author Silver.Zhou
 */
@Slf4j
@Service
public class MsgTemplateParamServiceImpl extends BaseServiceImpl<MsgTemplateParamMapper, MsgTemplateParam, TemplateParam, TemplateBean>
        implements IMsgTemplateParamService {

//    public static List<String> extractParams(String input) {
//        List<String> contents = new ArrayList<>();
//        Pattern pattern = Pattern.compile("\\$\\{([^\\}]+)\\}");
//        Matcher matcher = pattern.matcher(input);
//        while (matcher.find()) {
//            contents.add(matcher.group(1)); // 添加到结果列表中，group(1)是捕获组
//        }
//        return contents;
//    }
//
//    public static void main(String[] args) {
//        String text = "您好：\n" +
//                "\n" +
//                "\t\t用户（${userName}）申请注册广汽集团系统用户已完成，请使用注册的手机号码登录广汽集团零信任（${webUrl}）访问相关系统。\n" +
//                "\n" +
//                "\t\t如需帮助请联系IT服务台：020-83151010。";
//        List<String> braceContents = extractParams(text.trim());
//
//        for (String content : braceContents) {
//            System.out.println(content);
//        }
//    }
//
//    @Override
//    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
//    public void saveParams(SysMsgTemplate entity) {
//        this.baseMapper.delete(new QueryWrapper<SysMsgTemplateParam>().eq("template_id", entity.getId()));
//        extractParams(entity.getSubject()).stream().forEach(item -> {
//            SysMsgTemplateParam cur = new SysMsgTemplateParam(entity.getId(), TmpParamType.HEADER_PARAMS.getCode(), item);
//            cur.preInsert();
//            this.baseMapper.insert(cur);
//        });
//        extractParams(entity.getContent().trim()).stream().forEach(item -> {
//            SysMsgTemplateParam cur = new SysMsgTemplateParam(entity.getId(), TmpParamType.BODY_PARAMS.getCode(), item);
//            cur.preInsert();
//            this.baseMapper.insert(cur);
//        });
//    }
}
